package stud.mpgame.network;

import org.apache.mina.core.session.IoSession;

/**
 * Интерфейс, описывающий класс - подписчик.
 * Он может подписаться на уведомления, связанные с сессией: session opened/session closed.
 *
 * @author f.pavel91@gmail.com
 * @version 1.4
 */
public interface ISessionListener {

    /**
     * Метод для обработки уведомления об открытии сессии. Вызывается, когда создана новая сессия.
     *
     * Например,
     * <pre>
     *      SomeClass implements ISessionListener {
     *          //some code
     *          public void sessionOpened(IoSession session) {
     *              System.out.println("session opened");
     *          }
     *          //some code
     *      }
     * </pre>
     *
     * @param session новая сессия.
     */
    public void sessionOpened(IoSession session);

    /**
     * Метод для обработки уведомления о закрытии сессии. Вызывается, когда сессия прекратила существование.
     *
     * Например,
     * <pre>
     *      SomeClass implements ISessionListener {
     *          //some code
     *          public void sessionClosed(IoSession session) {
     *              System.out.println("session closed");
     *          }
     *          //some code
     *      }
     * </pre>
     *
     * @param session сессия, прекратившая существование.
     */
    public void sessionClosed(IoSession session);

}